#include <algorithm>
#include <iomanip>
#include <iostream>
#include <string>
using namespace std;

int n;
int T;
double ans = 0;

struct thing {
    int m;
    int v;
    double p;
} things[101];

bool cmp(thing a, thing b) {
    return a.p > b.p;
}

int main() {
    cin >> n;
    cin >> T;
    for (int i = 0; i < n; ++i) {
        cin >> things[i].m >> things[i].v;
        things[i].p = ( (double)things[i].v ) / things[i].m;
    }

    sort(things, things + n, cmp);

    for (int i = 0; i < n; ++i) {
        if (T > 0) {
            if (things[i].m <= T) {
                T -= things[i].m;
                ans += things[i].v;
            } else {
                ans += things[i].p * T ;
                T -= things[i].m;
            }
        } else {
            break;
        }
    }
    cout << fixed << setprecision(2) << ans << endl;
}

